Menhir is a LR(1) parser generator for the OCaml programming language.
That is, Menhir compiles LR(1) grammar specifications down to OCaml
code. Menhir was designed and implemented by François Pottier and
Yann Régis-Gianas.

Menhir is 90% compatible with ocamlyacc. Legacy ocamlyacc grammar
specifications are accepted and compiled by Menhir.  The resulting
parsers run and produce correct parse trees.  However, parsers that
explicitly invoke functions in module Parsing behave slightly
incorrectly. For instance, the functions that provide access to
positions return a dummy position when invoked by a Menhir parser.
Porting a grammar specification from ocamlyacc to Menhir requires
replacing all calls to module Parsing with new Menhir-specific
keywords.
